move routine pointers in ram = 0x802f8af8

00: check if move should work
01: determine adjusted accuracy							WORD: offset HALF: parameter (-1 include lock on status effect, -2 unknown)
02: pokemon used move message
03: unknown
04: decrease pp
05: check for critical hit
06: calculate move damage
07: before super effective check
08: before calculate hp loss
09: before calculate hp loss 2 (different params)
0a: move animation part 1
0b: move animation part 2
0c: reduce target hp
0d: damage animation
0e: critical hit message
0f: miss message
10: focus band/endure and effectiveness messages
11: display message											WORD: id
12: display message											HALF: id
13: display message and wait delay							HALF: delay
14: display message at offset								WORD: offset containing message id
15: display message from array								WORD: address of id array BYTE: index
16: check if secondary effect should activate
17: set effect target
18: set effect user
19: end status												BYTE: status id
1a: faint pokemon											BYTE: target BYTE: param 2 WORD: param 3
1b: check if sub should break								BYTE: param
1c: unknown													BYTE: param
1d: jump if main status										BYTE: target WORD: status id WORD: destination
1e: jump if secondary status								BYTE: target WORD: status id WORD: destination
1f: jump if ability											BYTE: target WORD: status id WORD: destination
20: jump if field effect									BYTE: target WORD: status id WORD: destination
21: jump if stat											BYTE: target BYTE: comparison (3:<,2:>,1:<,0:= these are untested assumptions) BYTE: stat id BYTE: value WORD: destination
22: jump if status compare									BYTE: target WORD: status id BYTE: compare to boolean WORD: destination
23: jump if type
24: calculate exp gain										BYTE: target BYTE: type BYTE: destination
25: switch in pokemon
26: reset crit and damage multipliers and seconday effect
27: attacking pokemon set number of hits
28: decremement number of hits
29: goto
2a: jump if byte
2b: jump if half
2c: jump if word
2d: jump if arrays are equal
2e: jump if arrays not equal
2f: store byte at offset
30: increase value at offset by byte
31: decrease value at offset by byte
32: copy array
33: copy array from address 2 to address 1, offset by value at address 3 (add arrays)
34: or value at offset with byte
35: or value at offset with half
36: or value at offset with word
37: and value at offset with byte
38: and value at offset with half
39: and value at offset with word
3a: pause											HALF: duration
3b: increase routine position by 1
3c: increase routine position by 2
3d: set end of knock out checks
3e: set end of move
3f: set end of move 2
40: set end of knock out checks 2
41: pokemon protected itself message
42: perform animation at offset
43: jump if type 2
44: jump if ability present
45: set end of knockout checks 3
46: play animation
47: unknown
48: unknown but related to stat boost stages
49: stat change animation
4a: after attack
4b: damage calc
4c: unknown
4d: switch 1
4e: switch 2									BYTE: target BYTE: baton pass 1= true, other = false
4f: switch 3
50: jump if pokemon is trapped					BYTE: target WORD: offset if trapped
51: open party screen
52: unknown
53: battle entry hazards and abilities			BYTE: target
---> unknown
59: switch out pokemon							BYTE: target
5a: check if pokemon learns new move
---> unknown
64: jump to attack
65: status animation
---> unknown
6b: remove item
---> unknown
77: switch/flee									BYTE: target BYTE: function index (7 baton pass, 2 teleport)
78: unknown
79: set protect
7a: faint if ability not damp
7b: set user hp to 0
7c: jump while target valid
7d: restore half max hp
7e jump to last used attack
7f: set rain
80: set reflect
81: set leech seed
82: set rest
83: jump if not first turn
84: nop
85: jump if target can't sleep
86: stockpile
87: set damage by stocks
88: set hp healing by stocks
89: negative damage
8a: go to stat boost offset
8b: normalise stat boosts
8c: set bide
8d: confusion if end of outrage, etc.
8e: set hits counter
8f: unknown
90: force random switch								WORD: routine offset if fails
91: change type to enemy attack type
92: give money
93: set light screen
94: ko target
95: get half of foe remaining hp
96: set weather
97: weather damage
98: attempt attract
99: unknown
9a: set mist
9b: set focus energy
9c: get data for transform
9d: create substitute
9e: mimic attack
9f: metronome
a0: night shade
a1: psywave
a2: counter
a3: mirror coat
a4: disable
a5: encore
a6: pain split
a7: conversion 2
a8: set always hit
a9: sketch
aa: select random move from move set
ab: destiny bond
ac: unknown
ad: flail
ae: spite
af: clear volatile status
b0: curse
b1: spikes
b2: foresight
b3: perish song
b4: rollout
b5: jump if confused and has max attack
b6: fury cutter
b7: happiness damage calc (return)
b8: present
b9: safeguard
ba: magnitude
bb: unknown
bc: belly drum
bd: psych up
be: break free (of pokeball ?)
bf: set curled (defense curl)
c0: recover based on weather
c1: calculate hidden power damage
c2: earthquake select next target
c3: set future attack

c9: follow me

e1: switch out abilities (natural cure)			BYTE: target

e3: nature power








// FIRE RED
.macro accuracycheck accuracycheck_address accuracycheck_parameter1
.byte 1
.word \accuracycheck_address
.hword \accuracycheck_parameter1
.endm

.macro attackstring
.byte 2
.endm

.macro ppreduce
.byte 3
.endm

.macro critcalc
.byte 4
.endm


.macro cmd5
.byte 5
.endm

.macro cmd6
.byte 6
.endm

.macro cmd7
.byte 7
.endm

.macro cmd8
.byte 8
.endm

.macro attackanimation
.byte 9
.endm

.macro waitanimation
.byte 0xA
.endm

.macro graphicalhpupdate graphicalhpupdate_bank
.byte 0xB
.byte \graphicalhpupdate_bank
.endm

.macro datahpupdate datahpupdate_bank
.byte 0xC
.byte \datahpupdate_bank
.endm

.macro critmessage
.byte 0xD
.endm

.macro missmessage
.byte 0xE
.endm

.macro resultmessage
.byte 0xF
.endm

.macro printstring printstring_string
.byte 0x10
.hword \printstring_string
.endm

.macro printstring2 printstring2_string
.byte 0x11
.hword \printstring2_string
.endm

.macro waitmessage waitmessage_delay
.byte 0x12
.hword \waitmessage_delay
.endm

.macro printfromtable printfromtable_table
.byte 0x13
.word \printfromtable_table
.endm

.macro printfromtable2 printfromtable2_table
.byte 0x14
.word \printfromtable2_table
.endm

.macro seteffectwithchancetarget
.byte 0x15
.endm

.macro seteffecttarget
.byte 0x16
.endm

.macro seteffectuser
.byte 0x17
.endm

.macro clearstatus clearstatus_bank
.byte 0x18
.byte \clearstatus_bank
.endm

.macro faintpokemon faintpokemon_parameter1 faintpokemon_parameter2 faintpokemon_parameter3
.byte 0x19
.byte \faintpokemon_parameter1
.byte \faintpokemon_parameter2
.word \faintpokemon_parameter3
.endm

.macro cmd1a cmd1a_parameter1
.byte 0x1A
.byte cmd1a_parameter1
.endm

.macro cmd1b cmd1b_bank
.byte 0x1B
.byte \cmd1b_bank
.endm

.macro jumpifstatus jumpifstatus_bank jumpifstatus_status jumpifstatus_address
.byte 0x1C
.byte \jumpifstatus_bank
.word \jumpifstatus_status
.word \jumpifstatus_address
.endm

.macro jumpifsecondarytstatus jumpifsecondarytstatus_bank jumpifsecondarytstatus_status jumpifsecondarytstatus_address
.byte 0x1D
.byte \jumpifsecondarytstatus_bank
.word \jumpifsecondarytstatus_status
.word \jumpifsecondarytstatus_address
.endm

.macro jumpifability jumpifability_bank jumpifability_ability jumpifability_address
.byte 0x1E
.byte \jumpifability_bank
.byte \jumpifability_ability
.word \jumpifability_address
.endm

.macro jumpifhalverset jumpifhalverset_bank jumpifhalverset_status jumpifhalverset_address
.byte 0x1F
.byte \jumpifhalverset_bank
.hword \jumpifhalverset_status
.word \jumpifhalverset_address
.endm

.macro jumpifstat jumpifstat_bank jumpifstat_flag jumpifstat_quantity jumpifstat_statid jumpifstat_address
.byte 0x20
.byte \jumpifstat_bank
.byte \jumpifstat_flag
.byte \jumpifstat_quantity
.byte \jumpifstat_statid
.word \jumpifstat_address
.endm

.macro jumpifspecialstatusflag jumpifspecialstatusflag_bank jumpifspecialstatusflag_word_to_and jumpifspecialstatusflag_statut jumpifspecialstatusflag_address
.byte 0x21
.byte \jumpifspecialstatusflag_bank
.word \jumpifspecialstatusflag_word_to_and
.byte \jumpifspecialstatusflag_statut
.word \jumpifspecialstatusflag_address
.endm

.macro jumpiftype jumpiftype_bank jumpiftype_type jumpiftype_address
.byte 0x22
.byte \jumpiftype_bank
.byte \jumpiftype_type
.word \jumpiftype_address
.endm

.macro cmd23 cmd23_side_or_bank
.byte 0x23
.byte \cmd23_side_or_bank
.endm

.macro gotoandsomething gotoandsomething_address
.byte 0x24
.word \gotoandsomething_address
.endm

.macro cmd25
.byte 0x25
.endm

.macro cmd26 cmd26_param1
.byte 0x26
.byte \cmd26_param1
.endm

.macro cmd27 cmd27_address
.byte 0x27
.word \cmd27_address
.endm

.macro goto goto_address
.byte 0x28
.word \goto_address
.endm

.macro jumpifbyte jumpifbyte_ifflag jumpifbyte_checkaddr jumpifbyte_compare jumpifbyte_address
.byte 0x29
.byte \jumpifbyte_ifflag
.word \jumpifbyte_checkaddr
.byte \jumpifbyte_compare
.word \jumpifbyte_address
.endm

.macro jumpifhalfword jumpifhalfword_ifflag jumpifhalfword_checkaddr jumpifhalfword_compare jumpifhalfword_address
.byte 0x2A
.byte \jumpifhalfword_ifflag
.word \jumpifhalfword_checkaddr
.hword \jumpifhalfword_compare
.word \jumpifhalfword_address
.endm

.macro jumpifword jumpifword_ifflag jumpifword_checkaddr jumpifword_compare jumpifword_address
.byte 0x2B
.byte \jumpifword_ifflag
.word \jumpifword_checkaddr
.word \jumpifword_compare
.word \jumpifword_address
.endm

.macro jumpifarrayequal jumpifarrayequal_mem1 jumpifarrayequal_mem2 jumpifarrayequal_size jumpifarrayequal_address
.byte 0x2C
.word \jumpifarrayequal_mem1
.word \jumpifarrayequal_mem2
.byte \jumpifarrayequal_size
.word \jumpifarrayequal_address
.endm

.macro jumpifarraynotequal jumpifarraynotequal_mem1 jumpifarraynotequal_mem2 jumpifarraynotequal_size jumpifarraynotequal_address
.byte 0x2D
.word \jumpifarraynotequal_mem1
.word \jumpifarraynotequal_mem2
.byte \jumpifarraynotequal_size
.word \jumpifarraynotequal_address
.endm

.macro setbyte setbyte_pointer setbyte_value
.byte 0x2E
.word \setbyte_pointer
.byte \setbyte_value
.endm

.macro addbyte addbyte_pointer addbyte_value
.byte 0x2F
.word \addbyte_pointer
.byte \addbyte_value
.endm

.macro subtractbyte subtractbyte_pointer subtractbyte_value
.byte 0x30
.word \subtractbyte_pointer
.byte \subtractbyte_value
.endm

.macro copyarray copyarray_destination copyarray_source copyarray_size
.byte 0x31
.word \copyarray_destination
.word \copyarray_source
.byte \copyarray_size
.endm

.macro cmd32 cmd32_param1 cmd32_param2 cmd32_param3 cmd32_byte
.byte 0x32
.word \cmd32_param1
.word \cmd32_param2
.word \cmd32_param3
.byte \cmd32_byte
.endm

.macro orbyte orbyte_pointer orbyte_value
.byte 0x33
.word \orbyte_pointer
.byte \orbyte_value
.endm

.macro orhalfword orhalfword_pointer orhalfword_value
.byte 0x34
.word \orhalfword_pointer
.hword \orhalfword_value
.endm

.macro orword orword_pointer orword_value
.byte 0x35
.word \orword_pointer
.word \orword_value
.endm

.macro bicbyte bicbyte_pointer bicbyte_value
.byte 0x36
.word \bicbyte_pointer
.byte \bicbyte_value
.endm

.macro bichalfword bichalfword_pointer bichalfword_value
.byte 0x37
.word \bichalfword_pointer
.hword \bichalfword_value
.endm

.macro bicword bicword_pointer bicword_value
.byte 0x38
.word \bicword_pointer
.word \bicword_value
.endm

.macro pause pause_duration
.byte 0x39
.hword \pause_duration
.endm

.macro waitstate
.byte 0x3A
.endm

.macro somethinghealcmd3b somethinghealcmd3b_bank
.byte 0x3B
.byte \somethinghealcmd3b_bank
.endm

.macro return
.byte 0x3C
.endm

.macro end
.byte 0x3D
.endm

.macro end2
.byte 0x3E
.endm

.macro end3
.byte 0x3F
.endm

.macro cmd40 cmd40_address
.byte 0x40
.word \cmd40_address
.endm

.macro call call_address
.byte 0x41
.word \call_address
.endm

.macro jumpiftype2 jumpiftype2_bank jumpiftype2_type jumpiftype2_address
.byte 0x42
.byte \jumpiftype2_bank
.byte \jumpiftype2_type
.word \jumpiftype2_address
.endm

.macro jumpifabilitypresent jumpifabilitypresent_ability jumpifabilitypresent_address
.byte 0x43
.byte \jumpifabilitypresent_ability
.word \jumpifabilitypresent_address
.endm

.macro cmd44
.byte 0x44
.endm

.macro playanimation playanimation_bank playanimation_animation playanimation_word
.byte 0x45
.byte \playanimation_bank
.byte \playanimation_animation
.word \playanimation_word
.endm

.macro cmd46 cmd46_bank cmd46_address cmd46_address2
.byte 0x46
.byte \cmd46_bank
.word \cmd46_address
.word \cmd46_address2
.endm

.macro cmd47
.byte 0x47
.endm

.macro playstatchangeanimation playstatchangeanimation_bank playstatchangeanimation_colour playstatchangeanimation_byte
.byte 0x48
.byte \playstatchangeanimation_bank
.byte \playstatchangeanimation_colour
.byte \playstatchangeanimation_byte
.endm

.macro cmd49 cmd49_byte1 cmd49_byte2
.byte 0x49
.byte \cmd49_byte1
.byte \cmd49_byte2
.endm

.macro damagecalc2
.byte 0x4A
.endm

.macro cmd4b
.byte 0x4B
.endm

.macro switch1 switch1_bank
.byte 0x4C
.byte \switch1_bank
.endm

.macro switch2 switch2_bank
.byte 0x4D
.byte \switch2_bank
.endm

.macro switch3 switch3_bank switch3_byte
.byte 0x4E
.byte \switch3_bank
.byte \switch3_byte
.endm

.macro jumpifcannotswitch jumpifcannotswitch_bank jumpifcannotswitch_address
.byte 0x4F
.byte \jumpifcannotswitch_bank
.word \jumpifcannotswitch_address
.endm

.macro openpartyscreen openpartyscreen_bank openpartyscreen_address
.byte 0x50
.byte \openpartyscreen_bank
.word \openpartyscreen_address
.endm

.macro cmd51 cmd51_bank cmd51_param2
.byte 0x51
.byte \cmd51_bank
.byte \cmd51_param2
.endm

.macro cmd52 cmd52_bank
.byte 0x52
.byte \cmd52_bank
.endm

.macro cmd53 cmd53_bank
.byte 0x53
.byte \cmd53_bank
.endm

.macro cmd54 cmd54_hword
.byte 0x54
.hword \cmd54_hword
.endm

.macro cmd55 cmd55_word
.byte 0x55
.word \cmd55_word
.endm

.macro cmd56 cmd56_bank_or_side
.byte 0x56
.byte \cmd56_bank_or_side
.endm

.macro cmd57
.byte 0x57
.endm

.macro cmd58 cmd58_bank
.byte 0x58
.byte \cmd58_bank
.endm

.macro checkiflearnmoveinbattle checkiflearnmoveinbattle_param1 checkiflearnmoveinbattle_param2 checkiflearnmoveinbattle_bank_maybe
.byte 0x59
.word \checkiflearnmoveinbattle_param1
.word \checkiflearnmoveinbattle_param2
.byte \checkiflearnmoveinbattle_bank_maybe
.endm

.macro cmd5a cmd5a_address
.byte 0x5A
.word \cmd5a_address
.endm

.macro cmd5b cmd5b_address
.byte 0x5B
.word \cmd5b_address
.endm

.macro cmd5c cmd5c_bank
.byte 0x5C
.byte \cmd5c_bank
.endm

.macro cmd5d
.byte 0x5D
.endm

.macro cmd5e cmd5e_bank
.byte 0x5E
.byte \cmd5e_bank
.endm

.macro cmd5f
.byte 0x5F
.endm

.macro cmd60 cmd60_byte
.byte 0x60
.byte \cmd60_byte
.endm

.macro cmd61 cmd61_bank_or_side
.byte 0x61
.byte \cmd61_bank_or_side
.endm

.macro cmd62 cmd62_bank_or_side
.byte 0x62
.byte \cmd62_bank_or_side
.endm

.macro jumptoattack jumptoattack_bank
.byte 0x63
.byte \jumptoattack_bank
.endm

.macro statusanimation statusanimation_bank
.byte 0x64
.byte \statusanimation_bank
.endm

.macro cmd65 cmd65_bank_or_side cmd65_address
.byte 0x65
.byte \cmd65_bank_or_side
.word \cmd65_address
.endm

.macro cmd66 cmd66_bank_or_side cmd66_bank_or_side2 cmd66_address
.byte 0x66
.byte \cmd66_bank_or_side
.byte \cmd66_bank_or_side2
.word \cmd66_address
.endm

.macro cmd67
.byte 0x67
.endm

.macro cmd68
.byte 0x68
.endm

.macro cmd69
.byte 0x69
.endm

.macro removeitem removeitem_bank
.byte 0x6A
.byte \removeitem_bank
.endm

.macro cmd6b
.byte 0x6B
.endm

.macro cmd6c
.byte 0x6C
.endm

.macro cmd6d
.byte 0x6D
.endm

.macro cmd6e
.byte 0x6E
.endm

.macro cmd6f cmd6f_bank
.byte 0x6F
.byte \cmd6f_bank
.endm

.macro cmd70 cmd70_bank
.byte 0x70
.byte \cmd70_bank
.endm

.macro cmd71
.byte 0x71
.endm

.macro cmd72 cmd72_address
.byte 0x72
.word \cmd72_address
.endm

.macro cmd73 cmd73_bank
.byte 0x73
.byte \cmd73_bank
.endm

.macro cmd74 cmd74_bank
.byte 0x74
.byte \cmd74_bank
.endm

.macro cmd75
.byte 0x75
.endm

.macro cmd76 cmd76_bank cmd76_byte
.byte 0x76
.byte \cmd76_bank
.byte \cmd76_byte
.endm

.macro setprotect
.byte 0x77
.endm

.macro faintifabilitynotdamp
.byte 0x78
.endm

.macro setuserhptozero
.byte 0x79
.endm

.macro jumpwhiletargetvalid jumpwhiletargetvalid_address
.byte 0x7A
.word \jumpwhiletargetvalid_address
.endm

.macro setdamageasrestorehalfmaxhp setdamageasrestorehalfmaxhp_address setdamageasrestorehalfmaxhp_byte
.byte 0x7B
.word \setdamageasrestorehalfmaxhp_address
.byte \setdamageasrestorehalfmaxhp_byte
.endm

.macro jumptolastusedattack
.byte 0x7C
.endm

.macro setrain
.byte 0x7D
.endm

.macro setreflect
.byte 0x7E
.endm

.macro setleechseed
.byte 0x7F
.endm

.macro manipulatedamage
.byte 0x80
.endm

.macro setrest setrest_address
.byte 0x81
.word \setrest_address
.endm

.macro jumpifnotfirstturn jumpifnotfirstturn_address
.byte 0x82
.word \jumpifnotfirstturn_address
.endm

.macro nop3
.byte 0x83
.endm

.macro jumpifcannotsleep jumpifcannotsleep_address
.byte 0x84
.word \jumpifcannotsleep_address
.endm

.macro stockpile
.byte 0x85
.endm

.macro stockpiletobasedamage stockpiletobasedamage_address
.byte 0x86
.word \stockpiletobasedamage_address
.endm

.macro stockpiletohprecovery stockpiletohprecovery_address
.byte 0x87
.word \stockpiletohprecovery_address
.endm

.macro negativedamage
.byte 0x88
.endm

.macro statbuffchange statbuffchange_target statbuffchange_address
.byte 0x89
.byte \statbuffchange_target
.word \statbuffchange_address
.endm

.macro normalisebuffs
.byte 0x8A
.endm

.macro setbide
.byte 0x8B
.endm

.macro confuseifrepeatingattackends
.byte 0x8C
.endm

.macro setloopcounter setloopcounter_number_of_loop
.byte 0x8D
.byte \setloopcounter_number_of_loop
.endm

.macro cmd8e
.byte 0x8E
.endm

.macro forcerandomswitch forcerandomswitch_address
.byte 0x8F
.word \forcerandomswitch_address
.endm

.macro changetypestoenemyattacktype changetypestoenemyattacktype_address
.byte 0x90
.word \changetypestoenemyattacktype_address
.endm

.macro givemoney
.byte 0x91
.endm

.macro setlightscreen
.byte 0x92
.endm

.macro koplussomethings koplussomethings_address
.byte 0x93
.word \koplussomethings_address
.endm

.macro gethalfcurrentenemyhp
.byte 0x94
.endm

.macro setsandstorm
.byte 0x95
.endm

.macro weatherdamage
.byte 0x96
.endm

.macro tryinfatuatetarget tryinfatuatetarget_address
.byte 0x97
.word \tryinfatuatetarget_address
.endm

.macro cmd98 cmd98_byte
.byte 0x98
.byte \cmd98_byte
.endm

.macro setmisteffect
.byte 0x99
.endm

.macro setincreasedcriticalchance
.byte 0x9A
.endm

.macro transformdataexecution
.byte 0x9B
.endm

.macro setsubstituteeffect
.byte 0x9C
.endm

.macro copyattack copyattack_address
.byte 0x9D
.word \copyattack_address
.endm

.macro metronomeeffect
.byte 0x9E
.endm

.macro nightshadedamageeffect
.byte 0x9F
.endm

.macro psywavedamageeffect
.byte 0xA0
.endm

.macro counterdamagecalculator counterdamagecalculator_address
.byte 0xA1
.word \counterdamagecalculator_address
.endm

.macro mirrorcoatdamagecalculator mirrorcoatdamagecalculator_address
.byte 0xA2
.word \mirrorcoatdamagecalculator_address
.endm

.macro disablelastusedattack disablelastusedattack_address
.byte 0xA3
.word \disablelastusedattack_address
.endm

.macro setencore setencore_address
.byte 0xA4
.word \setencore_address
.endm

.macro painsplitdamagecalculator painsplitdamagecalculator_address
.byte 0xA5
.word \painsplitdamagecalculator_address
.endm

.macro settypetorandomresistance settypetorandomresistance_address
.byte 0xA6
.word \settypetorandomresistance_address
.endm

.macro setalway****flag
.byte 0xA7
.endm

.macro copymovepermanently copymovepermanently_address
.byte 0xA8
.word \copymovepermanently_address
.endm

.macro selectrandommovefromusermoves selectrandommovefromusermoves_address
.byte 0xA9
.word \selectrandommovefromusermoves_address
.endm

.macro destinybondeffect
.byte 0xAA
.endm

.macro cmdab
.byte 0xAB
.endm

.macro remaininghptopower
.byte 0xAC
.endm

.macro reducepprandom reducepprandom_address
.byte 0xAD
.word \reducepprandom_address
.endm

.macro clearstatusifnotsoundproofed
.byte 0xAE
.endm

.macro cursetarget cursetarget_address
.byte 0xAF
.word \cursetarget_address
.endm

.macro setspikes setspikes_address
.byte 0xB0
.word \setspikes_address
.endm

.macro setforesight
.byte 0xB1
.endm

.macro setperishsong setperishsong_address
.byte 0xB2
.word \setperishsong_address
.endm

.macro rolloutdamagecalculation
.byte 0xB3
.endm

.macro jumpifconfusedandattackmaxed jumpifconfusedandattackmaxed_bank jumpifconfusedandattackmaxed_address
.byte 0xB4
.byte \jumpifconfusedandattackmaxed_bank
.word \jumpifconfusedandattackmaxed_address
.endm

.macro furycutterdamagecalculation
.byte 0xB5
.endm

.macro happinesstodamagecalculation
.byte 0xB6
.endm

.macro presentdamagecalculation
.byte 0xB7
.endm

.macro setsafeguard
.byte 0xB8
.endm

.macro magnitudedamagecalculation
.byte 0xB9
.endm

.macro cmdba cmdba_address
.byte 0xBA
.word \cmdba_address
.endm

.macro setsunny
.byte 0xBB
.endm

.macro maxattackhalvehp maxattackhalvehp_address
.byte 0xBC
.word \maxattackhalvehp_address
.endm

.macro copyfoestats copyfoestats_address
.byte 0xBD
.word \copyfoestats_address
.endm

.macro breakfree
.byte 0xBE
.endm

.macro setcurled
.byte 0xBF
.endm

.macro recoverbasedonsunlight
.byte 0xC0
.endm

.macro hiddenpowerdamagecalculation
.byte 0xC1
.endm

.macro selectnexttarget
.byte 0xC2
.endm

.macro setfutureattack setfutureattack_address
.byte 0xC3
.word \setfutureattack_address
.endm

.macro beatupcalculation beatupcalculation_address1 beatupcalculation_address2
.byte 0xC4
.word \beatupcalculation_address1
.word \beatupcalculation_address2
.endm

.macro hidepreattack
.byte 0xC5
.endm

.macro unhidepostattack
.byte 0xC6
.endm

.macro setminimize
.byte 0xC7
.endm

.macro sethail
.byte 0xC8
.endm

.macro jumpifattackandspecialattackcannotfall jumpifattackandspecialattackcannotfall_address
.byte 0xC9
.word \jumpifattackandspecialattackcannotfall_address
.endm

.macro setforcedtarget
.byte 0xCA
.endm

.macro setcharge
.byte 0xCB
.endm

.macro callterrainattack
.byte 0xCC
.endm

.macro cureifburnedparalysedorpoisoned cureifburnedparalysedorpoisoned_address
.byte 0xCD
.word \cureifburnedparalysedorpoisoned_address
.endm

.macro settorment settorment_address
.byte 0xCE
.word \settorment_address
.endm

.macro jumpifnodamage jumpifnodamage_address
.byte 0xCF
.word \jumpifnodamage_address
.endm

.macro settaunt settaunt_address
.byte 0xD0
.word \settaunt_address
.endm

.macro sethelpinghand sethelpinghand_address
.byte 0xD1
.word \sethelpinghand_address
.endm

.macro itemswap itemswap_address
.byte 0xD2
.word \itemswap_address
.endm

.macro copyability copyability_address
.byte 0xD3
.word \copyability_address
.endm

.macro cmdd4 cmdd4_byte cmdd4_address
.byte 0xD4
.byte \cmdd4_byte
.word \cmdd4_address
.endm

.macro setroots setroots_address
.byte 0xD5
.word \setroots_address
.endm

.macro doubledamagedealtifdamaged
.byte 0xD6
.endm

.macro setyawn setyawn_address
.byte 0xD7
.word \setyawn_address
.endm

.macro setdamagetohealthdifference setdamagetohealthdifference_address
.byte 0xD8
.word \setdamagetohealthdifference_address
.endm

.macro scaledamagebyhealthratio
.byte 0xD9
.endm

.macro abilityswap abilityswap_address
.byte 0xDA
.word \abilityswap_address
.endm

.macro imprisoneffect imprisoneffect_address
.byte 0xDB
.word \imprisoneffect_address
.endm

.macro setgrudge setgrudge_address
.byte 0xDC
.word \setgrudge_address
.endm

.macro weightdamagecalculation
.byte 0xDD
.endm

.macro assistattackselect assistattackselect_address
.byte 0xDE
.word \assistattackselect_address
.endm

.macro setmagiccoat setmagiccoat_address
.byte 0xDF
.word \setmagiccoat_address
.endm

.macro setstealstatchange setstealstatchange_address
.byte 0xE0
.word \setstealstatchange_address
.endm

.macro cmde1 cmde1_address
.byte 0xE1
.word \cmde1_address
.endm

.macro cmde2 cmde2_bank
.byte 0xE2
.byte \cmde2_bank
.endm

.macro jumpiffainted jumpiffainted_bank jumpiffainted_address
.byte 0xE3
.byte \jumpiffainted_bank
.word \jumpiffainted_address
.endm

.macro naturepowereffect
.byte 0xE4
.endm

.macro pickupitemcalculation
.byte 0xE5
.endm

.macro actualcastformswitch
.byte 0xE6
.endm

.macro castformswitch
.byte 0xE7
.endm

.macro settypebasedhalvers settypebasedhalvers_address
.byte 0xE8
.word \settypebasedhalvers_address
.endm

.macro seteffectbyweather
.byte 0xE9
.endm

.macro recycleitem recycleitem_address
.byte 0xEA
.word \recycleitem_address
.endm

.macro settypetoterrain settypetoterrain_address
.byte 0xEB
.word \settypetoterrain_address
.endm

.macro pursuitwhenswitched pursuitwhenswitched_address
.byte 0xEC
.word \pursuitwhenswitched_address
.endm

.macro snatchmove
.byte 0xED
.endm

.macro removereflectlightscreen
.byte 0xEE
.endm

.macro pokemoncatchfunction
.byte 0xEF
.endm

.macro catchpoke
.byte 0xF0
.endm

.macro capturesomethingf1 capturesomethingf1_address
.byte 0xF1
.word \capturesomethingf1_address
.endm

.macro capturesomethingf2
.byte 0xF2
.endm

.macro capturesomethingf3 capturesomethingf3_address
.byte 0xF3
.word \capturesomethingf3_address
.endm

.macro removehp
.byte 0xF4
.endm

.macro curestatutfirstword
.byte 0xF5
.endm

.macro cmdf6
.byte 0xF6
.endm

.macro activesidesomething
.byte 0xF7
.endm

